//教学过程中，教练示范一次，学员跟做三次。该过程被混乱剪辑后，记录于数组 actions，其中 actions[i] 表示做出该动作的人员编号。请返回教练的编
//号。 
//
// 
//
// 示例 1： 
//
// 
//输入：actions = [5, 7, 5, 5]
//输出：7
// 
//
// 示例 2： 
//
// 
//输入：actions = [12, 1, 6, 12, 6, 12, 6]
//输出：1
// 
//
// 
//
// 提示： 
//
// 
// 1 <= actions.length <= 10000 
// 1 <= actions[i] < 2^31 
// 
//
// Related Topics 位运算 数组 👍 480 👎 0


package LeetCode.editor.cn;

/**
 * @author ldltd
 * @date 2025-05-18 13:34:32
 * @description LCR 178.训练计划 VI
 */
public class ShuZuZhongShuZiChuXianDeCiShuIiLcof{
	 public static void main(String[] args) {
	 	 //测试代码
	 	 ShuZuZhongShuZiChuXianDeCiShuIiLcof fun=new ShuZuZhongShuZiChuXianDeCiShuIiLcof();
	 	 Solution solution = fun.new Solution();
		solution.trainingPlan(new int[]{5,7,5,5});
	 }
	 
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
		 // 一个数出现了一次，其余都出现了三次，找出出现一次的这个数
	//按位与，出现一次和%3=1的就是
	//5 101  7 111
    public int trainingPlan(int[] actions) {
		int []ar=new int[32];
		for (int action : actions) {
			for (int i = 0; i < 32&&action>0; i++) {
				ar[i]+=+(action&1);
				action>>>=1;
			}
		}
		int res=0;
		for (int i = 0; i < 32; i++) {
			res|=(ar[i]%3<<i);
		}
		return res;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
